package com.neusoft.carsale.util;

import java.text.SimpleDateFormat;
import java.util.Date;

public final class DateUtil {
	/**
	 * 日期格式： YYYY-MM-dd
	 * 
	 */
	public static final String DATE = "YYYY-MM-dd";

	/**
	 * YYYY-MM-dd HH:mm:ss
	 * 
	 */
	public static final String DATE_TIME = "YYYY-MM-dd HH:mm:ss";

	private DateUtil() {
	}

	/**
	 * <pre>
	 * Date date = DateUtil.parseDate("2020-01-01", DateUtil.DATE);
	 * 
	 * Date date = DateUtil.parseDate("2020-01-01 01:01:01", DateUtil.DATE_TIME);
	 * </pre>
	 * 
	 * @param dateString
	 * @param pattern
	 * @return 转换成功返回对应的时间 - null
	 */
	public static Date parseDate(String dateString, String pattern) {
		Date date = null;
		try {
			SimpleDateFormat sdf = new SimpleDateFormat(pattern);
			date = sdf.parse(dateString);
		} catch (Exception e) {
			System.out.println("时间转换失败");
		}
		return date;
	}

	/**
	 * 默认格式为： YYYY-MM-dd
	 * 
	 * @param dateString
	 * @return 转换成功返回对应的时间，转换失败返回 - null
	 */
	public static Date parseDate(String dateString) {
		Date date = null;
		try {
			SimpleDateFormat sdf = new SimpleDateFormat(DATE);
			date = sdf.parse(dateString);
		} catch (Exception e) {
			System.out.println("时间转换失败");
		}
		return date;
	}

	/**
	 * <pre>
	 * 例：
	 *   Date date = new Date();
	 *   String str1 =  DateUtil.formatDate(date,DateUtil.DATE);
	 *   String str2 =  DateUtil.formatDate(date,DateUtil.DATE_TIME);
	 * </pre>
	 * 
	 * @param date
	 * @param pattern
	 * @return 格式化成功返回对应的字符串，格式化失败返回- null
	 */
	public static String formatDate(Date date, String pattern) {
		String ret = null;
		if (date != null) {
			try {
				SimpleDateFormat sdf = new SimpleDateFormat(pattern);
				ret = sdf.format(date);
			} catch (Exception e) {
				System.out.println("ʱ��ת��ʧ��");
			}
		}
		return ret;
	}

	/**
	 * 默认格式为： YYYY-MM-dd
	 * 
	 * @param date
	 * @return 转换成功返回对应的时间 - null
	 */
	public static String formatDate(Date date) {
		String ret = null;
		if (date != null) {
			try {
				SimpleDateFormat sdf = new SimpleDateFormat(DATE);
				ret = sdf.format(date);
			} catch (Exception e) {
				System.out.println("时间转换失败");
			}
		}
		return ret;
	}
}
